#PRUEBAS DE MAZO
#coding: utf8

from Carta import Carta
from Mazo import Mazo

# Definicion de pruebas

def prueba_constructor_ordenado_y_obtener_tope():
	mazo = Mazo()
	assert isinstance(mazo,Mazo)
	for numero in xrange(13, 0,-1):
		for palo in xrange(3, -1, -1):
			assert mazo.obtener_tope() == Carta(numero,palo)
	
def prueba_mezclar():
	mazo = Mazo()
	for palos in xrange (3,-1,-1):
		for numeros in xrange (13,0,-1):
			try:
				#Las cartas ya no están en su posición inicial
				assert mazo.obtener_tope() != Carta(numeros,palos)	
			except:
				#Si por casualidad alguna/s carta queda en su posición inicial, la avanzo
				mazo.obtener_tope()
				
def prueba_es_vacio():
	mazo = Mazo()
	#Quitar todas las cartas de mazo
	for palos in range (0,4):
		for numeros in range (1,14):
			mazo.obtener_tope()	
	assert mazo.es_vacio()
	
# Ejecucion de pruebas

def pruebas_mazo():
	print "Pruebas mazo \n\r"
	for prueba in (prueba_constructor_ordenado_y_obtener_tope, prueba_mezclar, prueba_es_vacio):
		print (prueba.__name__ + ":"),
		prueba()
		print "OK"
		
pruebas_mazo()
